package org.example;

import java.io.IOException;
import java.util.List;

/**
 * 主类 - 演示Package.json依赖分析功能
 */
public class Main {
    public static void main(String[] args) {
        // 在这里直接指定package.json所在的目录路径
        String packageJsonDirectory = "C:\\Users\\YourUsername\\Projects\\my-node-project"; // 请修改为您的实际路径
        
        // 构建package.json文件的完整路径
        String packageJsonPath = packageJsonDirectory + "\\package.json";
        
        // 指定输出Excel文件的路径
        String outputPath = packageJsonDirectory + "\\dependencies.xlsx";
        
        System.out.println("=== Package.json 依赖分析工具 ===");
        System.out.println();
        System.out.println("正在分析目录: " + packageJsonDirectory);
        System.out.println("package.json文件: " + packageJsonPath);
        System.out.println("输出Excel文件: " + outputPath);
        System.out.println();
        
        try {
            PackageJsonAnalyzer analyzer = new PackageJsonAnalyzer();
            
            System.out.println("正在解析package.json文件...");
            List<PackageJsonAnalyzer.Dependency> dependencies = analyzer.parseDependencies(packageJsonPath);
            
            System.out.println("找到 " + dependencies.size() + " 个依赖");
            
            // 打印依赖信息到控制台
            System.out.println("\n依赖列表:");
            System.out.println("库名\t\t版本号\t\t依赖类型");
            System.out.println("----------------------------------------");
            for (PackageJsonAnalyzer.Dependency dep : dependencies) {
                System.out.printf("%-20s\t%-15s\t%s%n", 
                    dep.getName(), dep.getVersion(), dep.getType());
            }
            
            // 写入Excel文件
            System.out.println("\n正在生成Excel文件...");
            analyzer.writeToExcel(dependencies, outputPath);
            
            System.out.println("Excel文件生成成功！");
            System.out.println("文件保存在: " + outputPath);
            
        } catch (IOException e) {
            System.err.println("错误: " + e.getMessage());
            e.printStackTrace();
        }
        
        System.out.println("\n程序执行完成，按回车键退出...");
        try {
            System.in.read();
        } catch (IOException e) {
            // 忽略异常
        }
    }
}